Skip to content

Conversation

@ClaraMuller
Copy link
Contributor

🧭 What and Why

Composition API will introduce new behaviours soon. In order to make a clear separation of concern and reusable, extract everything related to injection behaviour into a dedicated directory

Changes included:

This PR should be transparent, no change on the clients directly

🧪 Test

  • CI
  • Run locally yarn cli build specs all && yarn cli build clients javascript

@ClaraMuller ClaraMuller requested a review from a team November 26, 2025 14:43
@ClaraMuller ClaraMuller requested a review from a team as a code owner November 26, 2025 14:43
@algolia-bot
Copy link
Collaborator

algolia-bot commented Nov 26, 2025

💥 Breaking changes detected !!

Either this PR or a previous PR not released yet introduced breaking changes, be careful when merging.
You can find the details in the 'client java@21' CI job.

✔️ Code generated!

Name Link
🪓 Triggered by 403198acaf07ec11f57087d37d77a8b255ccc716
🍃 Generated commit 4ed84738cbe70b97792778841977878c9f207f2f
🌲 Generated branch generated/clara/feat/add-injection-metadata
📊 Benchmark results

Benchmarks performed on the method using a mock server, the results might not reflect the real-world performance.

Language Req/s
javascript 2430
go 2331
php 1926
csharp 1567
python 1355
java 1180
ruby 892
swift 669
scala 23

@ClaraMuller
Copy link
Contributor Author

ClaraMuller commented Nov 27, 2025

➡️ Solved

	===  CLASS FILE FORMAT VERSION: 52.0 <- 52.0
	===  UNCHANGED SUPERCLASS: java.lang.Object (<- java.lang.Object)
	***! MODIFIED METHOD: PUBLIC com.algolia.model.composition.InjectionBehaviour (<-com.algolia.model.composition.Injection) getInjection()
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.CompositionBehavior setInjection(com.algolia.model.composition.Injection)
---! REMOVED CLASS: PUBLIC(-) com.algolia.model.composition.Injection  (not serializable)
	---  CLASS FILE FORMAT VERSION: n.a. <- 52.0
	---! REMOVED SUPERCLASS: java.lang.Object
	---! REMOVED CONSTRUCTOR: PUBLIC(-) Injection()
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Injection addInjectedItems(com.algolia.model.composition.InjectedItem)
	---! REMOVED METHOD: PUBLIC(-) boolean equals(java.lang.Object)
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Deduplication getDeduplication()
	---! REMOVED METHOD: PUBLIC(-) java.util.List<com.algolia.model.composition.InjectedItem> getInjectedItems()
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Main getMain()
	---! REMOVED METHOD: PUBLIC(-) int hashCode()
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Injection setDeduplication(com.algolia.model.composition.Deduplication)
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Injection setInjectedItems(java.util.List<com.algolia.model.composition.InjectedItem>)
	---! REMOVED METHOD: PUBLIC(-) com.algolia.model.composition.Injection setMain(com.algolia.model.composition.Main)
	---! REMOVED METHOD: PUBLIC(-) java.lang.String toString()
+++  NEW CLASS: PUBLIC(+) FINAL(+) kotlin.collections.builders.SerializedCollection  (changed from Serializable to Externalizable)
	+++  CLASS FILE FORMAT VERSION: 52.0 <- n.a.
	+++  NEW SUPERCLASS: java.lang.Object```

@@ -0,0 +1,111 @@
InjectionBehaviour:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could try renaming this to Injection to avoid the breaking change

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@millotp normally this fix is in my second commit 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants